﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GestionManoDeObra.DataAccess;
using GestionManoDeObra.BusinessEntity;

namespace GestionManoDeObra.BusinessLogic
{
    public class ImplementoTrabajadorDetalleBL
    {
        public void Crear(IList<ImplementoTrabajadorDetalle> listaImplementoTrabajadorDetalle)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                implementoTrabajadorDetalleDAL.Crear(listaImplementoTrabajadorDetalle);
                implementoTrabajadorDetalleDAL = null;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }                   
        }

        public void CrearDetalle(int IdImplementoTrabajador, IList<ImplementoCarrito> listaImplementoCarrito)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                implementoTrabajadorDetalleDAL.CrearDetalle(IdImplementoTrabajador,listaImplementoCarrito);
                implementoTrabajadorDetalleDAL = null;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public void DevolverDetalle(IList<ImplementoCarrito> listaImplementoCarrito)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                implementoTrabajadorDetalleDAL.DevolverDetalle(listaImplementoCarrito);
                implementoTrabajadorDetalleDAL = null;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public IList<ImplementoTrabajadorDetalle> Obtener(int IdImplementoTrabajadorDetalle)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                IList<ImplementoTrabajadorDetalle> detalle = implementoTrabajadorDetalleDAL.Obtener(IdImplementoTrabajadorDetalle);
                implementoTrabajadorDetalleDAL = null;
                return detalle;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public IList<ImplementoCarrito> ObtenerDetallePrestados(int IdImplementoTrabajador)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                IList<ImplementoCarrito> listaPrestados = implementoTrabajadorDetalleDAL.ObtenerDetallePrestados(IdImplementoTrabajador);
                IList<ImplementoCarrito> carrito = new List<ImplementoCarrito>();
                ImplementoCarrito implementoCarrito = null;
                int contador = 0;

                foreach (ImplementoCarrito item in listaPrestados)
                {
                    contador++;
                    implementoCarrito = new ImplementoCarrito();
                    implementoCarrito.Correlativo = contador;
                    implementoCarrito.DivId = "prestado" + Convert.ToString(item.IdImplementoTrabajadorDetalle);

                    implementoCarrito.IdImplementoTrabajadorDetalle = item.IdImplementoTrabajadorDetalle;
                    implementoCarrito.IdImplemento = item.IdImplemento;
                    implementoCarrito.NombreCategoria = item.NombreCategoria;
                    implementoCarrito.IdCategoriaImplemento = item.IdCategoriaImplemento;
                    implementoCarrito.Estado = item.Estado;
                    carrito.Add(implementoCarrito);
                }

                implementoTrabajadorDetalleDAL = null;
                return carrito;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public IList<ImplementoCarrito> ObtenerDetalleDevueltos(int IdImplementoTrabajador)
        {
            try
            {
                ImplementoTrabajadorDetalleDAL implementoTrabajadorDetalleDAL = new ImplementoTrabajadorDetalleDAL();
                IList<ImplementoCarrito> listaPrestados = implementoTrabajadorDetalleDAL.ObtenerDetalleDevueltos(IdImplementoTrabajador);
                IList<ImplementoCarrito> carrito = new List<ImplementoCarrito>();
                ImplementoCarrito implementoCarrito = null;
                int contador = 0;

                foreach (ImplementoCarrito item in listaPrestados)
                {
                    contador++;
                    implementoCarrito = new ImplementoCarrito();
                    implementoCarrito.Correlativo = contador;
                    implementoCarrito.DivId = "devuelto" + Convert.ToString(item.IdImplementoTrabajadorDetalle);

                    implementoCarrito.IdImplementoTrabajadorDetalle = item.IdImplementoTrabajadorDetalle;
                    implementoCarrito.IdImplemento = item.IdImplemento;
                    implementoCarrito.NombreCategoria = item.NombreCategoria;
                    implementoCarrito.IdCategoriaImplemento = item.IdCategoriaImplemento;
                    implementoCarrito.Estado = item.Estado;
                    carrito.Add(implementoCarrito);
                }

                implementoTrabajadorDetalleDAL = null;
                return carrito;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}
